header%20ipynb.png

Daftar Isi:

  1. Memuat Data
  2. Menelaah Data
Catatan : Jika belum pernah instal library, gunakan perintah berikut secara inline atau melalui terminal.
  1. !pip install pandas
  2. !pip install numpy

Memuat Data


In [ ]:
# import library
import pandas as pd
import numpy as np
In [ ]:
# load dataset
path = "epl-goalscorer(20-21).csv"
df = pd.read_csv(path)
In [ ]:
# menampilkan 5 baris awal dari dataset
df.head()
In [ ]:
# menampilkan 5 baris akhir dari dataset
df.tail()

Menelaah Data


In [ ]:
# mengungkap tipe-tipe data dari setiap kolom
print(df.dtypes)

Dari hasil output diatas terlihat bahwa 2 kolom pertama (yaitu: 'Unnamed: 0', dan 'id') hanyalah data numerik yang biasanya tidak memiliki makna rill, sehingga kita bisa tidak gunakan kolom/field tsb.

In [ ]:
df_noid = df.iloc[:,2:]
df_noid
In [ ]:
# menampilkan statistik dasar setiap kolom data yang bertipe numerik.
df_noid.describe()
In [ ]:
# jika ingin menampilkan juga statistik kolom- 
# yang bertipe non-numerik, mencakup beberapa banyak nilai unik- 
# dalam kolom (unique), nilai modus(top), serta frekuensi modus(freq)
df_noid.describe(include="all")

Contoh fungsi statistik setiap kolom (yang applicable)


In [ ]:
df_noid.mean()
In [ ]:
df_noid.sum()
In [ ]:
df_noid.median()
In [ ]:
df_noid.var()
In [ ]:
df_noid.std()
In [ ]:
df_noid.quantile(0.75)

Mencari pencilan dengan Tukey's fences (1)


In [ ]:
q1 = df_noid.quantile(0.25)
q3 = df_noid.quantile(0.75)
iqr = q3 - q1
iqr

Mencari pencilan dengan Tukey's fences (2)


In [ ]:
# handle warning 
import warnings 
warnings.filterwarnings('ignore')

# outlier filter
df_noid_align, iqr_new = df_noid.align(iqr, axis=1, copy=False, join='outer')
outlier_filter = (df_noid < q1 - 1.5 * iqr_new) | (df_noid > q3 + 1.5 * iqr_new)
outlier_filter

Mencari pencilan dengan Tukey's fences (3)


In [ ]:
df_noid[outlier_filter['assists']] \
    .loc[:, ['player_name', 'assists']] \
    .sort_values(by=['assists'], ascending=False)

Value_counts()


menghasilkan frekuensi setiap nilai unik di dalam kolom, yang tertinggi count-nya merupakan modus pada kolom tsb. Ada data dengan dua/tiga nama tim karena ada pemain yang bermain di dua/tiga klub dalam musim yang sama(ada transfer pemain)

In [ ]:
df_noid['team_title'].value_counts()

Analisis dengan groupby


method groupby memungkinkan analisa dilakukan secara per kelompok nilai atribut tertentu. misal: rerata dan simpangan baku gol per tim

In [ ]:
df.groupby('team_title')['goals'].std()
In [ ]:
df.groupby('team_title')['goals'].mean()

Korelasi Pearson antara kolom-kolom numerik


  • Method corr() menghasilkan tabel korelasi pearson antar kolom-kolom numerik.
  • Rentang nilai: antara -1 dan 1
  • -1 = korelasi negatif | 0 = tidak ada korelasi linier | +1 = korelasi positif
In [ ]:
df_noid.loc[:,'games':].corr()